// 定义枚举
const CacheType = {
  Local: 0,
  Session: 1
};

// 定义缓存类
class Cache {
  constructor(type) {
    // 根据传入的类型选择不同的存储对象
    this.storage = type === CacheType.Local ? localStorage : sessionStorage;
  }

  // 设置缓存
  setCache(key, value) {
    if (value) {
      this.storage.setItem(key, JSON.stringify(value));
    }
  }

  // 获取缓存
  getCache(key) {
    const value = this.storage.getItem(key);
    if (value) {
      return JSON.parse(value);
    }
  }

  // 移除缓存
  removeCache(key) {
    this.storage.removeItem(key);
  }

  // 清空缓存
  clear() {
    this.storage.clear();
  }
}

// 创建不同类型的缓存实例
const localCache = new Cache(CacheType.Local);
const sessionCache = new Cache(CacheType.Session);

// 导出缓存实例
export { localCache, sessionCache };